package com.onpositive.realmview.model.filtering;

import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.util.Set;

import com.onpositive.semantic.model.api.property.Category;
import com.onpositive.semantic.model.api.property.IProperty;
import com.onpositive.semantic.model.realm.IFilter;
import com.onpositive.semantic.model.realm.IIdentifiableObject;
import com.onpositive.semantic.model.realm.IRealm;

public interface IUIFilter extends IFilter, IIdentifiableObject, Cloneable{

	String getName();
	
	String id();

	void storeSettings(DataOutputStream stream);

	void readSettings(DataInputStream stream);

	IUIFilter clone();

	boolean isStale();

	IProperty getProperty();

	Set<Category> getGroup();

	public abstract String getDescription();

	public abstract IRealm<?> getRealm();
	
}
